package com.taobao.android.utils;

import android.graphics.Bitmap;
import android.graphics.BitmapFactory;

import com.taobao.android.mnndemo.R;

import java.nio.ByteBuffer;

public class BitmapToByteArray {

    public static byte[] getBytesFromBitmap(Bitmap bitmap) {
        // 获取Bitmap的宽度和高度
        int width = bitmap.getWidth();
        int height = bitmap.getHeight();

        // 根据Bitmap的配置（如ARGB_8888）确定每个像素的字节数
        int bytesPerPixel = bitmap.getConfig() == Bitmap.Config.ARGB_8888 ? 4 : 2;

        // 创建ByteBuffer
        ByteBuffer buffer = ByteBuffer.allocate(width * height * bytesPerPixel);
        
        // 将Bitmap的像素数据复制到ByteBuffer中
        bitmap.copyPixelsToBuffer(buffer);

        // 获取字节数组
        return buffer.array();
    }

    public static void main(String[] args) {
        // 假设你有一个Bitmap对象，下面的代码只是一个示例
//        Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.your_image);
//
//        // 获取字节数组
//        byte[] byteArray = getBytesFromBitmap(bitmap);
//
//        // 打印字节数组长度
//        System.out.println("Byte array length: " + byteArray.length);
    }
}